import request from '../request'

/**
 * 获取商品列表
 * GET trusteeship.product/list
 * @param {Object} params 查询参数
 * @param {string} [params.app_id] - 应用ID
 * @param {number} [params.page=1] - 页码
 * @param {number} [params.list_rows=15] - 每页条数
 * @param {string} [params.token] - 用户token
 * @returns {Promise<{list: {total:number, per_page:number, current_page:number, last_page:number, data:Array}}>} 返回Promise对象
 */
export function getProductList(params = {}) {
    const defaultParams = {
        page: 1,
        list_rows: 15
    }

    const requestParams = {
        ...defaultParams,
        ...params
    }

    // token 兜底：若未登录且未显式传 token，使用默认演示 token
    /*if (!requestParams.token) {
      const storedToken = uni.getStorageSync('token')
      requestParams.token = storedToken || '7719cbad7ccff2a340a890447608f99d'
    }*/

    // 根据全局 baseURL，路径无需以 / 开头
    return request.get('trusteeship.product/list', requestParams)
}

/**
 * 获取商品详情
 * GET trusteeship.product/detail
 * @param {Object} params 查询参数
 * @param {string} params.id - 商品ID
 * @param {string} [params.token] - 用户token
 * @returns {Promise<Object>} 返回Promise对象，包含商品详情
 */
export function getProductDetail(params = {}) {
    if (!params.id) {
        return Promise.reject(new Error('商品ID不能为空'));
    }

    return request.get('trusteeship.product/detail', params);
}

/**
 * 创建进货订单
 * POST trusteeship.order/create
 * @param {Object} params 订单参数
 * @param {string} [params.product_id] - 商品ID
 * @param {string} [params.product_sku_id] - 商品SKU ID
 * @param {string} [params.pay_source] - 支付来源：zfb=支付宝小程序,wx=微信小程序,h5=h5,app=App
 * @param {string} [params.pay_type] - 支付方式(10余额支付 20微信支付 30支付宝支付)
 * @param {string} [params.num=1] - 购买数量，目前只支持1
 * @param {string} [params.product_attr] - 商品SKU的规格信息，例如：白色:1T
 * @returns {Promise<Object>} 返回Promise对象，包含订单信息
 */
export function createOrder(params = {}) {
    const requiredParams = ['product_id', 'product_sku_id', 'pay_source', 'pay_type'];
    const missingParams = requiredParams.filter(param => !params[param]);

    if (missingParams.length > 0) {
        return Promise.reject(new Error(`缺少必要参数: ${missingParams.join(', ')}`));
    }

    const defaultParams = {
        num: '1' // 默认数量为1
    };

    return request.post('trusteeship.order/create', {},{
        params:{
            ...defaultParams,
            ...params
        }
    });
}

export default {
    getProductList,
    getProductDetail,
    createOrder
}
